#ifndef __COM_DEBUG_H__
#define __COM_DEBUG_H__



#include "string.h"
#include "usart.h"
#include "stdio.h"




//此处作为配置
#define DEBUF_MODE
#ifdef DEBUF_MODE
    //宏定义处理_FILE,只保留basename部分,/ 之前的路径删掉
    #define BASE_NAME (strrchr(__FILE__,'/')?strrchr(__FILE__,'/')+1:__FILE__)

    //对Base_name二次处理,去掉\之前的路径
    #define __BASE_NAME__ (strrchr(BASE_NAME,'\\')?strrchr(BASE_NAME,'\\')+1:BASE_NAME)

    //宏定义函数,打印的时候把文件名和行号加上
    #define __Debug_Printf(format,...)      printf("[%s:%d]" format, __BASE_NAME__,__LINE__,##__VA_ARGS__)
    #define __Debug_Printfln(format,...)    printf("[%s:%d]" format "\n", __BASE_NAME__,__LINE__,##__VA_ARGS__)
#else
    #define BASE_NAME
    #define __BASE_NAME__
    #define __Debug_Printf(format,...)
    #define __Debug_Printfln(format,...)
#endif // DEBUG

int fputc(int ch, FILE *f);

#endif
